package com.mapbar.mongodb;

import static com.mapbar.mongodb.ConnectionsPool.getMongo;

import java.net.UnknownHostException;

import com.mongodb.DBAddress;
import com.mongodb.Mongo;
import com.mongodb.WriteConcern;

public class MongoTester {
	public static void main(String[] args) throws UnknownHostException {
		System.err.println(Mongo.connect(new DBAddress("192.168.51.114", 20000, "admin")));// 直接创建一个数据库实例

		getMongo().fsync(false);// 设置主服务器的数据是否直接插入到物理硬盘(返回执行结果)
		getMongo().fsyncAndLock();// 强制所有数据直接插入到物理硬盘 并且上锁组织对数据库的写入操作(锁定一定要记得解锁 如果在锁定状态下程序运行结束 那么只能去数据库服务端解锁了)
		getMongo().unlock();// 解除写入锁定
		getMongo().getDB("test");// 获取指定的数据库 如果指定的库不存在 则创建一个临时的库
		getMongo().dropDatabase("test");// 删除掉指定的数据库
		getMongo().resetOptions();// 重置查询选项
		getMongo().setWriteConcern(WriteConcern.NORMAL);// 设置默认的异常处理级别(可以在实际执行语句的时候指定异常处理级别)

		System.err.println(getMongo().isLocked());// 是否锁定写入
		System.err.println(getMongo().debugString());// 获取个简单的连接状态字符串
		System.err.println(getMongo().getDatabaseNames());// 获得数据库列表
		System.err.println(getMongo().getMaxBsonObjectSize());// 获得数据库服务端对单个Bson数据的最大容量支持 会随着更换数据库服务端而改变
		System.err.println(getMongo().getConnectPoint());// 获得当前主数据库的地址
		System.err.println(getMongo().getOptions());// 获得默认的查询选项(虾米东西是查询选项..)
		System.err.println(getMongo().getVersion());// 获得服务端的版本
		System.err.println(getMongo().getMongoOptions());// 获得选项(貌似可以通过对象更改选项参数)
		System.err.println(getMongo().getReadPreference());// 获取默认的阅读偏好
		System.err.println(getMongo().getReplicaSetStatus());// 获取其他mongod节点的状态(切片?)http://cms.dba001.com/viewnews-69.html
		System.err.println(getMongo().getUsedDatabases());// 获取已经使用过的数据库(启动程序之后创建或者获取的库)
		System.err.println(getMongo().getWriteConcern());// 服务端响应级别 http://blog.csdn.net/xinghebuluo/article/details/7035123
	}
}
